Don't consume too many key releases
authorMatthias Clasen <mclasen@redhat.com>
Tue, 22 Aug 2017 10:41:31 +0000 (06:41 -0400)
committerMatthias Clasen <mclasen@redhat.com>
Tue, 22 Aug 2017 10:49:35 +0000 (06:49 -0400)
The Emoji input support in GtkIMContextSimple was
unintentionally consuming too many key release
events. Fix this.

https://bugzilla.gnome.org/show_bug.cgi?id=786594

gtk/gtkimcontextsimple.c

index c83e0495dc1523a8c76bb9f16000cbdac3ed89e0..a27cb57507655d23552c6b98ea607f63912c101d 100644 (file)
@@ -1177,11 +1177,14 @@ gtk_im_context_simple_filter_keypress (GtkIMContext *context,
              gtk_im_context_simple_commit_char (context, priv->tentative_match);
              priv->compose_buffer[0] = 0;
 
+             return TRUE;
            }
          else if (priv->in_emoji_sequence ||
                    (priv->in_hex_sequence && n_compose == 0))
            {
              priv->modifiers_dropped = TRUE;
+
+             return TRUE;
            }
          else if (priv->in_hex_sequence)
            {
@@ -1195,12 +1198,12 @@ gtk_im_context_simple_filter_keypress (GtkIMContext *context,
 
              g_signal_emit_by_name (context_simple, "preedit-changed");
              g_signal_emit_by_name (context_simple, "preedit-end");
-           }
 
-         return TRUE;
+             return TRUE;
+           }
        }
-      else
-       return FALSE;
+
+      return FALSE;
     }
 
   /* Ignore modifier key presses */